from django.views import View
# 导入返回响应
from SaaSDevelTool.data_return_response import create_response
# 导入错误信息装饰器
from SaaSDevelTool.data_return_response import error_message_detection
# 导入解析用户信息函数
from SaaSDevelTool.data_user_func import user
# 导入数据库连接
from SaaSDevelTool.data_mysql_data import db

"""添加模型"""


class SaaSDevelModelClassCreate(View):
    @error_message_detection
    def post(self, request):
        """添加模型信息"""
        # 获取模型名称
        model_name = request.POST.get("model_name")
        # 获取模型备注
        model_images = request.POST.get("model_images")

        # 判断参数是否传递完整
        if not all([model_name, model_images]):
            return create_response(code=400, msg="添加失败，模型名称和备注信息为必传参数。")

        # 判断模型信息格式
        if not 4 > len(model_name) and len(model_name) > 30:
            return create_response(code=400, msg="添加失败，模型信息长度不得小于4或大于30。")

        # 判断模型备注信息格式
        if len(model_images) > 100:
            return create_response(code=400, msg="添加失败，模型备注信息长度不得大于100。")


        # 判断模型是否已存在
        query_sum_model_table_sql = """
            SELECT 
                model_name
            FROM 
                db_saas_center.sum_model_table 
            WHERE 
                model_name = '{}';
            """.format(model_name)
        query_sum_model_table_data = db.findOne(query_sum_model_table_sql)

        # 如果模型存在的情况下
        if query_sum_model_table_data:
            return create_response(
                code=400, msg="添加失败，当前模型【{}】已添加。"
                .format("**" + query_sum_model_table_data['model_name']))

        # 拼接sql语句进行添加
        create_sum_model_table_sql = """
            INSERT INTO 
                db_saas_center.sum_model_table (
                    model_name,
                    model_images
                    )
            VALUES
                ('{}','{}')
            ;""".format(model_name, model_images)
        # 执行添加语句
        db.update(create_sum_model_table_sql)
        # 返回对应的数据
        return create_response(code=200, msg="模型添加成功！")

